/**
 * Created by Administrator on 2017/8/30.
 */
/**
 *
 * @param id 按钮组的父Id
 * @param pop 整个弹出层的id
 * @param fun1 确定按钮要执行的函数
 * @param fun2 取消按钮要执行的函数
 */
function popWindo(id,pop,fun1,fun2){
    var pop = document.getElementById(pop);
    pop.style.display = 'block';        //让整个层显示
    var btns = document.getElementById(id);
    var btn1 = btns.children[0];
    var btn2 = btns.children[1];

    /**
     * 要求 确定的函数必要写，使用的错误处理
     * throw 抛出一个错误
     *      如果throw 在try catch结构中抛出，会在 catch中被捕获，发生的错误不会影响到后面的代码
     *
     *      throw 不在 try中，抛出的代码，会影响后面执行的语句
     */
    try {

        //判断一个变量是不是函数 ，typeof 确定是不是 object  变量名 instanceof Function 确定是不是继承于Function对象
        if(typeof fun1 != 'function' || !(fun1 instanceof Function)){
            throw new Error('你没有确定按钮的方法')
        }
        if(typeof fun2 != 'function' || !(fun2 instanceof Function)){
            throw new Error('你没有确定按钮的方法')
        }
    } catch (e){
        throw '好像是这两个回调函数没有调用'
    }

    // alert('aa')
    //给确定按钮绑定事件
    //使用到了自执行函数，自执行函数封闭了一个闭包的变量 callback,callback同时也是一个回调函数
    btn1.onclick = function(callback){
        return function(){
            //判断一个变量是不是函数 ，typeof 确定是不是 object  变量名 instanceof Function 确定是不是继承于Function对象
            if(typeof callback == 'function' && callback instanceof Function){
                callback()
            } else {
                console.log("a")
            }

        }
    }(fun1)
    btn2.onclick = function(callback){
        return function(){
            if(typeof callback == 'function' && callback instanceof Function){
                callback()
            }
        }
    }(fun2)
}